package com.ruoyi.shop.service;

import java.util.List;

import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.shop.domain.ShopUserOpenid;
import com.ruoyi.shop.vo.WxInfoVo;

/**
 * 账号绑定信息Service接口
 * 
 * @author Alan Zhang
 * @date 2021-09-14
 */
public interface IShopUserOpenidService 
{
    /**
     * 查询账号绑定信息
     * 
     * @param id 账号绑定信息主键
     * @return 账号绑定信息
     */
    public ShopUserOpenid selectShopUserOpenidById(Long id);

    /**
     * 查询账号绑定信息列表
     * 
     * @param shopUserOpenid 账号绑定信息
     * @return 账号绑定信息集合
     */
    public List<ShopUserOpenid> selectShopUserOpenidList(ShopUserOpenid shopUserOpenid);

    /**
     * 新增账号绑定信息
     * 
     * @param shopUserOpenid 账号绑定信息
     * @return 结果
     */
    public int insertShopUserOpenid(ShopUserOpenid shopUserOpenid);

    /**
     * 修改账号绑定信息
     * 
     * @param shopUserOpenid 账号绑定信息
     * @return 结果
     */
    public int updateShopUserOpenid(ShopUserOpenid shopUserOpenid);

    /**
     * 批量删除账号绑定信息
     * 
     * @param ids 需要删除的账号绑定信息主键集合
     * @return 结果
     */
    public int deleteShopUserOpenidByIds(String ids);

    /**
     * 删除账号绑定信息信息
     * 
     * @param id 账号绑定信息主键
     * @return 结果
     */
    public int deleteShopUserOpenidById(Long id);

    /**
     * 查询 账号绑定信息
     * @param sessionKey
     * @return
     */
    public ShopUserOpenid selectShopUserOpenidBySessionKey(String sessionKey);

    /**
     * 查询 账号绑定信息
     * @param userId
     * @return
     */
    public ShopUserOpenid selectShopUserOpenidByUserId(Long userId);

    /**
     * 创建用户
     * @param wxInfo
     * @param wxMaJscode2SessionResult
     * @return
     */
    public AjaxResult createUser(WxInfoVo wxInfo, WxMaJscode2SessionResult wxMaJscode2SessionResult);
}
